package daoimpl;

import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
import connector.Connector;
import daointerfaces.DALException;
import daointerfaces.RaavareDAO;
import dto.RaavareDTO;

public class MySQLRaavareDAO implements RaavareDAO {

	@Override
	public RaavareDTO getRaavare(int raavareId) throws DALException {
		ResultSet rs = Connector.doQuery("SELECT * FROM raavareCDIO WHERE raavareID = " + raavareId);
		try {
			if (!rs.first()) throw new DALException("Raavare " + raavareId + " findes ikke");
			return new RaavareDTO(rs.getInt(1), rs.getString(2));
		}
		catch (SQLException e) {throw new DALException(e); }
	}

	@Override
	public List<RaavareDTO> getRaavareList() throws DALException {
		List<RaavareDTO> list = new ArrayList<RaavareDTO>();
		ResultSet rs = Connector.doQuery("SELECT * FROM raavareCDIO");
		try
		{
			while (rs.next())
			{
				list.add(new RaavareDTO(rs.getInt(1), rs.getString(2)));
			}
		}
		catch (SQLException e) { throw new DALException(e); }
		return list;
	}

	@Override
	public void createRaavare(RaavareDTO raavare) throws DALException {
		Connector.doUpdate(
				"INSERT INTO raavareCDIO(raavareID, raavareNavn) VALUES " +
						"(" + raavare.getRaavareId() + ", '" + raavare.getRaavareNavn()+ "')"
				);
	}

	public void deleteRaavare(int raavareId) throws DALException {
		Connector.doUpdate(
				"DELETE FROM raavareCDIO WHERE raavareId=" + raavareId
				);
	}

	@Override
	public void updateRaavare(RaavareDTO raavare) throws DALException {
		Connector.doUpdate(
				"UPDATE raavareCDIO SET  raavareID = " + raavare.getRaavareId() + ", raavareNavn = '" + raavare.getRaavareNavn()
				+ "' WHERE raavareID =  "  + raavare.getRaavareId()
				);
	}
}